package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelo.Categoria;
import modelo.Sentencias;
import vista.VistaCategoria;;

public class ControladorCategoria implements ActionListener{
	public VistaCategoria vCategoria;
	public Categoria categoria;
	public Sentencias MyConex=new Sentencias();

	public ControladorCategoria(VistaCategoria vcat){
		vCategoria=vcat;
	}

		
		public void actionPerformed(ActionEvent ae) {

			if(ae.getSource()== vCategoria.btnSalir)
			{
				int opcion = JOptionPane.showConfirmDialog(new JFrame(),"Desea volver al menu anterior?",
						     "Mensaje de Confirmacion",JOptionPane.YES_NO_OPTION,
						     JOptionPane.QUESTION_MESSAGE);
				if (opcion == JOptionPane.YES_OPTION)
					vCategoria.dispose();
			}
			if(ae.getSource()== vCategoria.btnRegistrar){
				if(validarCampos()){
				categoria = new Categoria(vCategoria.txtCodCategoria.getText(),vCategoria.txtDescripcion.getText());
					//MyConex = new Sentencias();
				MyConex.insetarDatosCategoria(categoria);
				JOptionPane.showMessageDialog(new JFrame(), 
						"La categoria se ha registrado exitosamente","Categoria", 
						JOptionPane.INFORMATION_MESSAGE);
				inicio();
				}
				else
					JOptionPane.showMessageDialog(new JFrame(), 
							"Debe llenar todos los campos vacios","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
			
		}
			if(ae.getSource()== vCategoria.btnBuscar){
				String codcategoria=vCategoria.txtCodCategoria.getText();
				if(codcategoria.equals(""))
					JOptionPane.showMessageDialog(new JFrame(), 
							"Por favor introduzca el codigo de la categoria","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
				else{
				Categoria categoria=MyConex.obtenerCategoria(codcategoria);
				if(categoria==null){
					JOptionPane.showMessageDialog(new JFrame(), 
							"La categoria no se encuntra registrada","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
					noEncontrado();
				}
				else
				{
					vCategoria.txtDescripcion.setText(categoria.getDescripcion());
					encontrado();
				}
				}
		}
			if(ae.getSource()== vCategoria.btnModificar){
				if(validarCampos()){
				MyConex = new Sentencias();
				categoria=new Categoria(vCategoria.txtCodCategoria.getText(),vCategoria.txtDescripcion.getText());
				MyConex.modificarCategoria(vCategoria.txtCodCategoria.getText(),categoria);
				JOptionPane.showMessageDialog(new JFrame(), 
						"La Categoria ha sido modificada exitosamente","Categoria", 
						JOptionPane.INFORMATION_MESSAGE);
				inicio();
				}
				else
					JOptionPane.showMessageDialog(new JFrame(), 
							"Debe llenar todos los campos vacios","Categoria", 
							JOptionPane.INFORMATION_MESSAGE);
				
			}
			if(ae.getSource()== vCategoria.btnLimpiar){
				limpiarCampos();
			}
		}
		public boolean validarCampos(){
			boolean validar=true;
			if(vCategoria.txtCodCategoria.getText().equals("") || vCategoria.txtDescripcion.getText().equals(""))
				validar=false;
			return validar;
		}
		public void limpiarCampos(){
			vCategoria.txtCodCategoria.setText("");
			vCategoria.txtDescripcion.setText("");
			vCategoria.txtCodCategoria.requestFocus(true);
		}
		public void encontrado(){
			vCategoria.txtDescripcion.setEditable(true);
			vCategoria.btnModificar.setEnabled(true);	
		}
		public void noEncontrado(){
			vCategoria.btnRegistrar.setEnabled(true);
			vCategoria.txtDescripcion.setEditable(true);
			vCategoria.btnLimpiar.setEnabled(true);
			vCategoria.txtCodCategoria.setEditable(false);
		}
		public void inicio(){
			vCategoria.btnModificar.setEnabled(false);
			vCategoria.btnRegistrar.setEnabled(false);
			vCategoria.btnLimpiar.setEnabled(false);
		    limpiarCampos();
			
		}
}
